(function webpackUniversalModuleDefinition(root, factory) {
	if(typeof exports === 'object' && typeof module === 'object')
		module.exports = factory();
	else if(typeof define === 'function' && define.amd)
		define([], factory);
	else if(typeof exports === 'object')
		exports["GDemo"] = factory();
	else
		root["GDemo"] = factory();
})(typeof self !== 'undefined' ? self : this, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ 	function hotDisposeChunk(chunkId) {
/******/ 		delete installedChunks[chunkId];
/******/ 	}
/******/ 	var parentHotUpdateCallback = window["webpackHotUpdateGDemo"];
/******/ 	window["webpackHotUpdateGDemo"] =
/******/ 	function webpackHotUpdateCallback(chunkId, moreModules) { // eslint-disable-line no-unused-vars
/******/ 		hotAddUpdateChunk(chunkId, moreModules);
/******/ 		if(parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules);
/******/ 	} ;
/******/
/******/ 	function hotDownloadUpdateChunk(chunkId) { // eslint-disable-line no-unused-vars
/******/ 		var head = document.getElementsByTagName("head")[0];
/******/ 		var script = document.createElement("script");
/******/ 		script.type = "text/javascript";
/******/ 		script.charset = "utf-8";
/******/ 		script.src = __webpack_require__.p + "" + chunkId + "." + hotCurrentHash + ".hot-update.js";
/******/ 		;
/******/ 		head.appendChild(script);
/******/ 	}
/******/
/******/ 	function hotDownloadManifest(requestTimeout) { // eslint-disable-line no-unused-vars
/******/ 		requestTimeout = requestTimeout || 10000;
/******/ 		return new Promise(function(resolve, reject) {
/******/ 			if(typeof XMLHttpRequest === "undefined")
/******/ 				return reject(new Error("No browser support"));
/******/ 			try {
/******/ 				var request = new XMLHttpRequest();
/******/ 				var requestPath = __webpack_require__.p + "" + hotCurrentHash + ".hot-update.json";
/******/ 				request.open("GET", requestPath, true);
/******/ 				request.timeout = requestTimeout;
/******/ 				request.send(null);
/******/ 			} catch(err) {
/******/ 				return reject(err);
/******/ 			}
/******/ 			request.onreadystatechange = function() {
/******/ 				if(request.readyState !== 4) return;
/******/ 				if(request.status === 0) {
/******/ 					// timeout
/******/ 					reject(new Error("Manifest request to " + requestPath + " timed out."));
/******/ 				} else if(request.status === 404) {
/******/ 					// no update available
/******/ 					resolve();
/******/ 				} else if(request.status !== 200 && request.status !== 304) {
/******/ 					// other failure
/******/ 					reject(new Error("Manifest request to " + requestPath + " failed."));
/******/ 				} else {
/******/ 					// success
/******/ 					try {
/******/ 						var update = JSON.parse(request.responseText);
/******/ 					} catch(e) {
/******/ 						reject(e);
/******/ 						return;
/******/ 					}
/******/ 					resolve(update);
/******/ 				}
/******/ 			};
/******/ 		});
/******/ 	}
/******/
/******/
/******/
/******/ 	var hotApplyOnUpdate = true;
/******/ 	var hotCurrentHash = "8ce7029c3df8c951672d"; // eslint-disable-line no-unused-vars
/******/ 	var hotRequestTimeout = 10000;
/******/ 	var hotCurrentModuleData = {};
/******/ 	var hotCurrentChildModule; // eslint-disable-line no-unused-vars
/******/ 	var hotCurrentParents = []; // eslint-disable-line no-unused-vars
/******/ 	var hotCurrentParentsTemp = []; // eslint-disable-line no-unused-vars
/******/
/******/ 	function hotCreateRequire(moduleId) { // eslint-disable-line no-unused-vars
/******/ 		var me = installedModules[moduleId];
/******/ 		if(!me) return __webpack_require__;
/******/ 		var fn = function(request) {
/******/ 			if(me.hot.active) {
/******/ 				if(installedModules[request]) {
/******/ 					if(installedModules[request].parents.indexOf(moduleId) < 0)
/******/ 						installedModules[request].parents.push(moduleId);
/******/ 				} else {
/******/ 					hotCurrentParents = [moduleId];
/******/ 					hotCurrentChildModule = request;
/******/ 				}
/******/ 				if(me.children.indexOf(request) < 0)
/******/ 					me.children.push(request);
/******/ 			} else {
/******/ 				console.warn("[HMR] unexpected require(" + request + ") from disposed module " + moduleId);
/******/ 				hotCurrentParents = [];
/******/ 			}
/******/ 			return __webpack_require__(request);
/******/ 		};
/******/ 		var ObjectFactory = function ObjectFactory(name) {
/******/ 			return {
/******/ 				configurable: true,
/******/ 				enumerable: true,
/******/ 				get: function() {
/******/ 					return __webpack_require__[name];
/******/ 				},
/******/ 				set: function(value) {
/******/ 					__webpack_require__[name] = value;
/******/ 				}
/******/ 			};
/******/ 		};
/******/ 		for(var name in __webpack_require__) {
/******/ 			if(Object.prototype.hasOwnProperty.call(__webpack_require__, name) && name !== "e") {
/******/ 				Object.defineProperty(fn, name, ObjectFactory(name));
/******/ 			}
/******/ 		}
/******/ 		fn.e = function(chunkId) {
/******/ 			if(hotStatus === "ready")
/******/ 				hotSetStatus("prepare");
/******/ 			hotChunksLoading++;
/******/ 			return __webpack_require__.e(chunkId).then(finishChunkLoading, function(err) {
/******/ 				finishChunkLoading();
/******/ 				throw err;
/******/ 			});
/******/
/******/ 			function finishChunkLoading() {
/******/ 				hotChunksLoading--;
/******/ 				if(hotStatus === "prepare") {
/******/ 					if(!hotWaitingFilesMap[chunkId]) {
/******/ 						hotEnsureUpdateChunk(chunkId);
/******/ 					}
/******/ 					if(hotChunksLoading === 0 && hotWaitingFiles === 0) {
/******/ 						hotUpdateDownloaded();
/******/ 					}
/******/ 				}
/******/ 			}
/******/ 		};
/******/ 		return fn;
/******/ 	}
/******/
/******/ 	function hotCreateModule(moduleId) { // eslint-disable-line no-unused-vars
/******/ 		var hot = {
/******/ 			// private stuff
/******/ 			_acceptedDependencies: {},
/******/ 			_declinedDependencies: {},
/******/ 			_selfAccepted: false,
/******/ 			_selfDeclined: false,
/******/ 			_disposeHandlers: [],
/******/ 			_main: hotCurrentChildModule !== moduleId,
/******/
/******/ 			// Module API
/******/ 			active: true,
/******/ 			accept: function(dep, callback) {
/******/ 				if(typeof dep === "undefined")
/******/ 					hot._selfAccepted = true;
/******/ 				else if(typeof dep === "function")
/******/ 					hot._selfAccepted = dep;
/******/ 				else if(typeof dep === "object")
/******/ 					for(var i = 0; i < dep.length; i++)
/******/ 						hot._acceptedDependencies[dep[i]] = callback || function() {};
/******/ 				else
/******/ 					hot._acceptedDependencies[dep] = callback || function() {};
/******/ 			},
/******/ 			decline: function(dep) {
/******/ 				if(typeof dep === "undefined")
/******/ 					hot._selfDeclined = true;
/******/ 				else if(typeof dep === "object")
/******/ 					for(var i = 0; i < dep.length; i++)
/******/ 						hot._declinedDependencies[dep[i]] = true;
/******/ 				else
/******/ 					hot._declinedDependencies[dep] = true;
/******/ 			},
/******/ 			dispose: function(callback) {
/******/ 				hot._disposeHandlers.push(callback);
/******/ 			},
/******/ 			addDisposeHandler: function(callback) {
/******/ 				hot._disposeHandlers.push(callback);
/******/ 			},
/******/ 			removeDisposeHandler: function(callback) {
/******/ 				var idx = hot._disposeHandlers.indexOf(callback);
/******/ 				if(idx >= 0) hot._disposeHandlers.splice(idx, 1);
/******/ 			},
/******/
/******/ 			// Management API
/******/ 			check: hotCheck,
/******/ 			apply: hotApply,
/******/ 			status: function(l) {
/******/ 				if(!l) return hotStatus;
/******/ 				hotStatusHandlers.push(l);
/******/ 			},
/******/ 			addStatusHandler: function(l) {
/******/ 				hotStatusHandlers.push(l);
/******/ 			},
/******/ 			removeStatusHandler: function(l) {
/******/ 				var idx = hotStatusHandlers.indexOf(l);
/******/ 				if(idx >= 0) hotStatusHandlers.splice(idx, 1);
/******/ 			},
/******/
/******/ 			//inherit from previous dispose call
/******/ 			data: hotCurrentModuleData[moduleId]
/******/ 		};
/******/ 		hotCurrentChildModule = undefined;
/******/ 		return hot;
/******/ 	}
/******/
/******/ 	var hotStatusHandlers = [];
/******/ 	var hotStatus = "idle";
/******/
/******/ 	function hotSetStatus(newStatus) {
/******/ 		hotStatus = newStatus;
/******/ 		for(var i = 0; i < hotStatusHandlers.length; i++)
/******/ 			hotStatusHandlers[i].call(null, newStatus);
/******/ 	}
/******/
/******/ 	// while downloading
/******/ 	var hotWaitingFiles = 0;
/******/ 	var hotChunksLoading = 0;
/******/ 	var hotWaitingFilesMap = {};
/******/ 	var hotRequestedFilesMap = {};
/******/ 	var hotAvailableFilesMap = {};
/******/ 	var hotDeferred;
/******/
/******/ 	// The update info
/******/ 	var hotUpdate, hotUpdateNewHash;
/******/
/******/ 	function toModuleId(id) {
/******/ 		var isNumber = (+id) + "" === id;
/******/ 		return isNumber ? +id : id;
/******/ 	}
/******/
/******/ 	function hotCheck(apply) {
/******/ 		if(hotStatus !== "idle") throw new Error("check() is only allowed in idle status");
/******/ 		hotApplyOnUpdate = apply;
/******/ 		hotSetStatus("check");
/******/ 		return hotDownloadManifest(hotRequestTimeout).then(function(update) {
/******/ 			if(!update) {
/******/ 				hotSetStatus("idle");
/******/ 				return null;
/******/ 			}
/******/ 			hotRequestedFilesMap = {};
/******/ 			hotWaitingFilesMap = {};
/******/ 			hotAvailableFilesMap = update.c;
/******/ 			hotUpdateNewHash = update.h;
/******/
/******/ 			hotSetStatus("prepare");
/******/ 			var promise = new Promise(function(resolve, reject) {
/******/ 				hotDeferred = {
/******/ 					resolve: resolve,
/******/ 					reject: reject
/******/ 				};
/******/ 			});
/******/ 			hotUpdate = {};
/******/ 			var chunkId = 0;
/******/ 			{ // eslint-disable-line no-lone-blocks
/******/ 				/*globals chunkId */
/******/ 				hotEnsureUpdateChunk(chunkId);
/******/ 			}
/******/ 			if(hotStatus === "prepare" && hotChunksLoading === 0 && hotWaitingFiles === 0) {
/******/ 				hotUpdateDownloaded();
/******/ 			}
/******/ 			return promise;
/******/ 		});
/******/ 	}
/******/
/******/ 	function hotAddUpdateChunk(chunkId, moreModules) { // eslint-disable-line no-unused-vars
/******/ 		if(!hotAvailableFilesMap[chunkId] || !hotRequestedFilesMap[chunkId])
/******/ 			return;
/******/ 		hotRequestedFilesMap[chunkId] = false;
/******/ 		for(var moduleId in moreModules) {
/******/ 			if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
/******/ 				hotUpdate[moduleId] = moreModules[moduleId];
/******/ 			}
/******/ 		}
/******/ 		if(--hotWaitingFiles === 0 && hotChunksLoading === 0) {
/******/ 			hotUpdateDownloaded();
/******/ 		}
/******/ 	}
/******/
/******/ 	function hotEnsureUpdateChunk(chunkId) {
/******/ 		if(!hotAvailableFilesMap[chunkId]) {
/******/ 			hotWaitingFilesMap[chunkId] = true;
/******/ 		} else {
/******/ 			hotRequestedFilesMap[chunkId] = true;
/******/ 			hotWaitingFiles++;
/******/ 			hotDownloadUpdateChunk(chunkId);
/******/ 		}
/******/ 	}
/******/
/******/ 	function hotUpdateDownloaded() {
/******/ 		hotSetStatus("ready");
/******/ 		var deferred = hotDeferred;
/******/ 		hotDeferred = null;
/******/ 		if(!deferred) return;
/******/ 		if(hotApplyOnUpdate) {
/******/ 			// Wrap deferred object in Promise to mark it as a well-handled Promise to
/******/ 			// avoid triggering uncaught exception warning in Chrome.
/******/ 			// See https://bugs.chromium.org/p/chromium/issues/detail?id=465666
/******/ 			Promise.resolve().then(function() {
/******/ 				return hotApply(hotApplyOnUpdate);
/******/ 			}).then(
/******/ 				function(result) {
/******/ 					deferred.resolve(result);
/******/ 				},
/******/ 				function(err) {
/******/ 					deferred.reject(err);
/******/ 				}
/******/ 			);
/******/ 		} else {
/******/ 			var outdatedModules = [];
/******/ 			for(var id in hotUpdate) {
/******/ 				if(Object.prototype.hasOwnProperty.call(hotUpdate, id)) {
/******/ 					outdatedModules.push(toModuleId(id));
/******/ 				}
/******/ 			}
/******/ 			deferred.resolve(outdatedModules);
/******/ 		}
/******/ 	}
/******/
/******/ 	function hotApply(options) {
/******/ 		if(hotStatus !== "ready") throw new Error("apply() is only allowed in ready status");
/******/ 		options = options || {};
/******/
/******/ 		var cb;
/******/ 		var i;
/******/ 		var j;
/******/ 		var module;
/******/ 		var moduleId;
/******/
/******/ 		function getAffectedStuff(updateModuleId) {
/******/ 			var outdatedModules = [updateModuleId];
/******/ 			var outdatedDependencies = {};
/******/
/******/ 			var queue = outdatedModules.slice().map(function(id) {
/******/ 				return {
/******/ 					chain: [id],
/******/ 					id: id
/******/ 				};
/******/ 			});
/******/ 			while(queue.length > 0) {
/******/ 				var queueItem = queue.pop();
/******/ 				var moduleId = queueItem.id;
/******/ 				var chain = queueItem.chain;
/******/ 				module = installedModules[moduleId];
/******/ 				if(!module || module.hot._selfAccepted)
/******/ 					continue;
/******/ 				if(module.hot._selfDeclined) {
/******/ 					return {
/******/ 						type: "self-declined",
/******/ 						chain: chain,
/******/ 						moduleId: moduleId
/******/ 					};
/******/ 				}
/******/ 				if(module.hot._main) {
/******/ 					return {
/******/ 						type: "unaccepted",
/******/ 						chain: chain,
/******/ 						moduleId: moduleId
/******/ 					};
/******/ 				}
/******/ 				for(var i = 0; i < module.parents.length; i++) {
/******/ 					var parentId = module.parents[i];
/******/ 					var parent = installedModules[parentId];
/******/ 					if(!parent) continue;
/******/ 					if(parent.hot._declinedDependencies[moduleId]) {
/******/ 						return {
/******/ 							type: "declined",
/******/ 							chain: chain.concat([parentId]),
/******/ 							moduleId: moduleId,
/******/ 							parentId: parentId
/******/ 						};
/******/ 					}
/******/ 					if(outdatedModules.indexOf(parentId) >= 0) continue;
/******/ 					if(parent.hot._acceptedDependencies[moduleId]) {
/******/ 						if(!outdatedDependencies[parentId])
/******/ 							outdatedDependencies[parentId] = [];
/******/ 						addAllToSet(outdatedDependencies[parentId], [moduleId]);
/******/ 						continue;
/******/ 					}
/******/ 					delete outdatedDependencies[parentId];
/******/ 					outdatedModules.push(parentId);
/******/ 					queue.push({
/******/ 						chain: chain.concat([parentId]),
/******/ 						id: parentId
/******/ 					});
/******/ 				}
/******/ 			}
/******/
/******/ 			return {
/******/ 				type: "accepted",
/******/ 				moduleId: updateModuleId,
/******/ 				outdatedModules: outdatedModules,
/******/ 				outdatedDependencies: outdatedDependencies
/******/ 			};
/******/ 		}
/******/
/******/ 		function addAllToSet(a, b) {
/******/ 			for(var i = 0; i < b.length; i++) {
/******/ 				var item = b[i];
/******/ 				if(a.indexOf(item) < 0)
/******/ 					a.push(item);
/******/ 			}
/******/ 		}
/******/
/******/ 		// at begin all updates modules are outdated
/******/ 		// the "outdated" status can propagate to parents if they don't accept the children
/******/ 		var outdatedDependencies = {};
/******/ 		var outdatedModules = [];
/******/ 		var appliedUpdate = {};
/******/
/******/ 		var warnUnexpectedRequire = function warnUnexpectedRequire() {
/******/ 			console.warn("[HMR] unexpected require(" + result.moduleId + ") to disposed module");
/******/ 		};
/******/
/******/ 		for(var id in hotUpdate) {
/******/ 			if(Object.prototype.hasOwnProperty.call(hotUpdate, id)) {
/******/ 				moduleId = toModuleId(id);
/******/ 				var result;
/******/ 				if(hotUpdate[id]) {
/******/ 					result = getAffectedStuff(moduleId);
/******/ 				} else {
/******/ 					result = {
/******/ 						type: "disposed",
/******/ 						moduleId: id
/******/ 					};
/******/ 				}
/******/ 				var abortError = false;
/******/ 				var doApply = false;
/******/ 				var doDispose = false;
/******/ 				var chainInfo = "";
/******/ 				if(result.chain) {
/******/ 					chainInfo = "\nUpdate propagation: " + result.chain.join(" -> ");
/******/ 				}
/******/ 				switch(result.type) {
/******/ 					case "self-declined":
/******/ 						if(options.onDeclined)
/******/ 							options.onDeclined(result);
/******/ 						if(!options.ignoreDeclined)
/******/ 							abortError = new Error("Aborted because of self decline: " + result.moduleId + chainInfo);
/******/ 						break;
/******/ 					case "declined":
/******/ 						if(options.onDeclined)
/******/ 							options.onDeclined(result);
/******/ 						if(!options.ignoreDeclined)
/******/ 							abortError = new Error("Aborted because of declined dependency: " + result.moduleId + " in " + result.parentId + chainInfo);
/******/ 						break;
/******/ 					case "unaccepted":
/******/ 						if(options.onUnaccepted)
/******/ 							options.onUnaccepted(result);
/******/ 						if(!options.ignoreUnaccepted)
/******/ 							abortError = new Error("Aborted because " + moduleId + " is not accepted" + chainInfo);
/******/ 						break;
/******/ 					case "accepted":
/******/ 						if(options.onAccepted)
/******/ 							options.onAccepted(result);
/******/ 						doApply = true;
/******/ 						break;
/******/ 					case "disposed":
/******/ 						if(options.onDisposed)
/******/ 							options.onDisposed(result);
/******/ 						doDispose = true;
/******/ 						break;
/******/ 					default:
/******/ 						throw new Error("Unexception type " + result.type);
/******/ 				}
/******/ 				if(abortError) {
/******/ 					hotSetStatus("abort");
/******/ 					return Promise.reject(abortError);
/******/ 				}
/******/ 				if(doApply) {
/******/ 					appliedUpdate[moduleId] = hotUpdate[moduleId];
/******/ 					addAllToSet(outdatedModules, result.outdatedModules);
/******/ 					for(moduleId in result.outdatedDependencies) {
/******/ 						if(Object.prototype.hasOwnProperty.call(result.outdatedDependencies, moduleId)) {
/******/ 							if(!outdatedDependencies[moduleId])
/******/ 								outdatedDependencies[moduleId] = [];
/******/ 							addAllToSet(outdatedDependencies[moduleId], result.outdatedDependencies[moduleId]);
/******/ 						}
/******/ 					}
/******/ 				}
/******/ 				if(doDispose) {
/******/ 					addAllToSet(outdatedModules, [result.moduleId]);
/******/ 					appliedUpdate[moduleId] = warnUnexpectedRequire;
/******/ 				}
/******/ 			}
/******/ 		}
/******/
/******/ 		// Store self accepted outdated modules to require them later by the module system
/******/ 		var outdatedSelfAcceptedModules = [];
/******/ 		for(i = 0; i < outdatedModules.length; i++) {
/******/ 			moduleId = outdatedModules[i];
/******/ 			if(installedModules[moduleId] && installedModules[moduleId].hot._selfAccepted)
/******/ 				outdatedSelfAcceptedModules.push({
/******/ 					module: moduleId,
/******/ 					errorHandler: installedModules[moduleId].hot._selfAccepted
/******/ 				});
/******/ 		}
/******/
/******/ 		// Now in "dispose" phase
/******/ 		hotSetStatus("dispose");
/******/ 		Object.keys(hotAvailableFilesMap).forEach(function(chunkId) {
/******/ 			if(hotAvailableFilesMap[chunkId] === false) {
/******/ 				hotDisposeChunk(chunkId);
/******/ 			}
/******/ 		});
/******/
/******/ 		var idx;
/******/ 		var queue = outdatedModules.slice();
/******/ 		while(queue.length > 0) {
/******/ 			moduleId = queue.pop();
/******/ 			module = installedModules[moduleId];
/******/ 			if(!module) continue;
/******/
/******/ 			var data = {};
/******/
/******/ 			// Call dispose handlers
/******/ 			var disposeHandlers = module.hot._disposeHandlers;
/******/ 			for(j = 0; j < disposeHandlers.length; j++) {
/******/ 				cb = disposeHandlers[j];
/******/ 				cb(data);
/******/ 			}
/******/ 			hotCurrentModuleData[moduleId] = data;
/******/
/******/ 			// disable module (this disables requires from this module)
/******/ 			module.hot.active = false;
/******/
/******/ 			// remove module from cache
/******/ 			delete installedModules[moduleId];
/******/
/******/ 			// when disposing there is no need to call dispose handler
/******/ 			delete outdatedDependencies[moduleId];
/******/
/******/ 			// remove "parents" references from all children
/******/ 			for(j = 0; j < module.children.length; j++) {
/******/ 				var child = installedModules[module.children[j]];
/******/ 				if(!child) continue;
/******/ 				idx = child.parents.indexOf(moduleId);
/******/ 				if(idx >= 0) {
/******/ 					child.parents.splice(idx, 1);
/******/ 				}
/******/ 			}
/******/ 		}
/******/
/******/ 		// remove outdated dependency from module children
/******/ 		var dependency;
/******/ 		var moduleOutdatedDependencies;
/******/ 		for(moduleId in outdatedDependencies) {
/******/ 			if(Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)) {
/******/ 				module = installedModules[moduleId];
/******/ 				if(module) {
/******/ 					moduleOutdatedDependencies = outdatedDependencies[moduleId];
/******/ 					for(j = 0; j < moduleOutdatedDependencies.length; j++) {
/******/ 						dependency = moduleOutdatedDependencies[j];
/******/ 						idx = module.children.indexOf(dependency);
/******/ 						if(idx >= 0) module.children.splice(idx, 1);
/******/ 					}
/******/ 				}
/******/ 			}
/******/ 		}
/******/
/******/ 		// Not in "apply" phase
/******/ 		hotSetStatus("apply");
/******/
/******/ 		hotCurrentHash = hotUpdateNewHash;
/******/
/******/ 		// insert new code
/******/ 		for(moduleId in appliedUpdate) {
/******/ 			if(Object.prototype.hasOwnProperty.call(appliedUpdate, moduleId)) {
/******/ 				modules[moduleId] = appliedUpdate[moduleId];
/******/ 			}
/******/ 		}
/******/
/******/ 		// call accept handlers
/******/ 		var error = null;
/******/ 		for(moduleId in outdatedDependencies) {
/******/ 			if(Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)) {
/******/ 				module = installedModules[moduleId];
/******/ 				if(module) {
/******/ 					moduleOutdatedDependencies = outdatedDependencies[moduleId];
/******/ 					var callbacks = [];
/******/ 					for(i = 0; i < moduleOutdatedDependencies.length; i++) {
/******/ 						dependency = moduleOutdatedDependencies[i];
/******/ 						cb = module.hot._acceptedDependencies[dependency];
/******/ 						if(cb) {
/******/ 							if(callbacks.indexOf(cb) >= 0) continue;
/******/ 							callbacks.push(cb);
/******/ 						}
/******/ 					}
/******/ 					for(i = 0; i < callbacks.length; i++) {
/******/ 						cb = callbacks[i];
/******/ 						try {
/******/ 							cb(moduleOutdatedDependencies);
/******/ 						} catch(err) {
/******/ 							if(options.onErrored) {
/******/ 								options.onErrored({
/******/ 									type: "accept-errored",
/******/ 									moduleId: moduleId,
/******/ 									dependencyId: moduleOutdatedDependencies[i],
/******/ 									error: err
/******/ 								});
/******/ 							}
/******/ 							if(!options.ignoreErrored) {
/******/ 								if(!error)
/******/ 									error = err;
/******/ 							}
/******/ 						}
/******/ 					}
/******/ 				}
/******/ 			}
/******/ 		}
/******/
/******/ 		// Load self accepted modules
/******/ 		for(i = 0; i < outdatedSelfAcceptedModules.length; i++) {
/******/ 			var item = outdatedSelfAcceptedModules[i];
/******/ 			moduleId = item.module;
/******/ 			hotCurrentParents = [moduleId];
/******/ 			try {
/******/ 				__webpack_require__(moduleId);
/******/ 			} catch(err) {
/******/ 				if(typeof item.errorHandler === "function") {
/******/ 					try {
/******/ 						item.errorHandler(err);
/******/ 					} catch(err2) {
/******/ 						if(options.onErrored) {
/******/ 							options.onErrored({
/******/ 								type: "self-accept-error-handler-errored",
/******/ 								moduleId: moduleId,
/******/ 								error: err2,
/******/ 								orginalError: err, // TODO remove in webpack 4
/******/ 								originalError: err
/******/ 							});
/******/ 						}
/******/ 						if(!options.ignoreErrored) {
/******/ 							if(!error)
/******/ 								error = err2;
/******/ 						}
/******/ 						if(!error)
/******/ 							error = err;
/******/ 					}
/******/ 				} else {
/******/ 					if(options.onErrored) {
/******/ 						options.onErrored({
/******/ 							type: "self-accept-errored",
/******/ 							moduleId: moduleId,
/******/ 							error: err
/******/ 						});
/******/ 					}
/******/ 					if(!options.ignoreErrored) {
/******/ 						if(!error)
/******/ 							error = err;
/******/ 					}
/******/ 				}
/******/ 			}
/******/ 		}
/******/
/******/ 		// handle errors in accept handlers and self accepted module load
/******/ 		if(error) {
/******/ 			hotSetStatus("fail");
/******/ 			return Promise.reject(error);
/******/ 		}
/******/
/******/ 		hotSetStatus("idle");
/******/ 		return new Promise(function(resolve) {
/******/ 			resolve(outdatedModules);
/******/ 		});
/******/ 	}
/******/
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {},
/******/ 			hot: hotCreateModule(moduleId),
/******/ 			parents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp),
/******/ 			children: []
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId));
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, {
/******/ 				configurable: false,
/******/ 				enumerable: true,
/******/ 				get: getter
/******/ 			});
/******/ 		}
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";
/******/
/******/ 	// __webpack_hash__
/******/ 	__webpack_require__.h = function() { return hotCurrentHash; };
/******/
/******/ 	// Load entry module and return exports
/******/ 	return hotCreateRequire(6)(__webpack_require__.s = 6);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar _public = {};\n\n_public.parseHtml = function (htmlString) {\n  var parser = new DOMParser();\n  var doc = parser.parseFromString(htmlString, 'text/html');\n  return doc.querySelector('body').firstChild;\n};\n\n_public.wrapHtmlStringInHtmlTag = function (htmlString, tagName) {\n  return '<' + tagName + '>' + htmlString + '</' + tagName + '>';\n};\n\n_public.clearNodeContent = function (node) {\n  node.innerHTML = '';\n  return node;\n};\n\n_public.containsClosingHtmlTag = function (string) {\n  var regex = new RegExp('</.+>', 'gm');\n  return regex.test(string);\n};\n\n_public.isHtmlNodeTypeText = function (node) {\n  return node && node.nodeName.toLowerCase() == '#text';\n};\n\nexports.default = _public;\nmodule.exports = exports['default'];\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/scripts/services/dom/dom.js\n// module id = 0\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/scripts/services/dom/dom.js?");

/***/ }),
/* 1 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar _public = {};\n\n_public.toKebabCase = function (text) {\n  return text.toLowerCase().replace(' ', '-');\n};\n\n_public.isEmptyString = function (string) {\n  return string.trim() === '';\n};\n\n_public.removeBlankFirstLine = function (text) {\n  var lines = text.split('\\n');\n  if (lines[0].trim() === '') lines.splice(0, 1);\n  return lines;\n};\n\nexports.default = _public;\nmodule.exports = exports['default'];\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/scripts/services/text/text.js\n// module id = 1\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/scripts/services/text/text.js?");

/***/ }),
/* 2 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Application = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(14);\n\nvar _dom = __webpack_require__(0);\n\nvar _dom2 = _interopRequireDefault(_dom);\n\nvar _text = __webpack_require__(1);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _application = __webpack_require__(15);\n\nvar _application2 = _interopRequireDefault(_application);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Application = exports.Application = function () {\n  function Application(applicationType) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, Application);\n\n    this.type = applicationType;\n    this.options = options;\n    this.element = buildElement(applicationType);\n    this.setOptions(this.options);\n  }\n\n  _createClass(Application, [{\n    key: 'setOptions',\n    value: function setOptions(options) {\n      if (options.minHeight) this.setMinHeight(options.minHeight);\n      if (options.windowTitle) this.setWindowTitle(options.windowTitle);\n    }\n  }, {\n    key: 'setMinHeight',\n    value: function setMinHeight(height) {\n      var applicationTopbarHeight = 26;\n      var contentContainer = getContentContainerElement(this.element);\n      var contentContainerMinHeight = parseInt(height) - applicationTopbarHeight;\n      contentContainer.style.minHeight = contentContainerMinHeight + 'px';\n    }\n  }, {\n    key: 'setWindowTitle',\n    value: function setWindowTitle(title) {\n      var titleContainerElement = getWindowTitleContainerElement(this.element);\n      titleContainerElement.innerText = title;\n      this.windowTitle = title;\n    }\n  }, {\n    key: 'addContent',\n    value: function addContent(content) {\n      var container = getContentContainerElement(this.element);\n      container.appendChild(content);\n    }\n  }, {\n    key: 'minimize',\n    value: function minimize() {\n      this.setMaximized(false);\n      handleMaximizedCssClass(this.element, 'remove');\n    }\n  }, {\n    key: 'maximize',\n    value: function maximize() {\n      this.setMaximized(true);\n      handleMaximizedCssClass(this.element, 'add');\n    }\n  }, {\n    key: 'setMaximized',\n    value: function setMaximized(isMaximized) {\n      this.isMaximized = isMaximized;\n    }\n  }]);\n\n  return Application;\n}();\n\nfunction buildElement(applicationType) {\n  var element = buildWrapper(applicationType);\n  element.appendChild(_dom2.default.parseHtml(_application2.default));\n  return element;\n}\n\nfunction buildWrapper(applicationType) {\n  var wrapper = document.createElement('div');\n  var cssClass = _text2.default.toKebabCase(applicationType) + '-application';\n  wrapper.setAttribute('class', cssClass);\n  return wrapper;\n}\n\nfunction getContentContainerElement(applicationElement) {\n  return applicationElement.querySelector('[data-content-container]');\n}\n\nfunction getWindowTitleContainerElement(applicationElement) {\n  return applicationElement.querySelector('[data-title-container]');\n}\n\nfunction handleMaximizedCssClass(element, classListMethod) {\n  var application = element.querySelector('[data-application]');\n  application.classList[classListMethod]('application-maximized');\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/scripts/components/application/application.js\n// module id = 2\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/scripts/components/application/application.js?");

/***/ }),
/* 3 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Cursor = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(18);\n\nvar _dom = __webpack_require__(0);\n\nvar _dom2 = _interopRequireDefault(_dom);\n\nvar _type = __webpack_require__(19);\n\nvar _type2 = _interopRequireDefault(_type);\n\nvar _cursor = __webpack_require__(21);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ACTIVE_CSS_CLASS = 'cursor-active';\n\nvar Cursor = exports.Cursor = function () {\n  function Cursor() {\n    _classCallCheck(this, Cursor);\n\n    this.element = _dom2.default.parseHtml(_cursor2.default);\n  }\n\n  _createClass(Cursor, [{\n    key: 'write',\n    value: function write(text, onComplete) {\n      _type2.default.type(this.element, text, onComplete);\n    }\n  }, {\n    key: 'setActive',\n    value: function setActive() {\n      handleCssClass(this.element, 'add', ACTIVE_CSS_CLASS);\n    }\n  }, {\n    key: 'setInactive',\n    value: function setInactive() {\n      handleCssClass(this.element, 'remove', ACTIVE_CSS_CLASS);\n    }\n  }]);\n\n  return Cursor;\n}();\n\nfunction handleCssClass(cursorElement, action, cssClass) {\n  cursorElement.classList[action](cssClass);\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/scripts/components/cursor/cursor.js\n// module id = 3\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/scripts/components/cursor/cursor.js?");

/***/ }),
/* 4 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar _public = {};\n\n_public.type = function (container, text, onComplete) {\n  var letters = text.split('');\n  var letter = letters.shift();\n  if (letter) appendLetter(container, letter, letters, onComplete);else onComplete();\n};\n\nfunction appendLetter(container, letter, letters, onComplete) {\n  container.append(letter);\n  setTimeout(function () {\n    _public.type(container, letters.join(''), onComplete);\n  }, 75);\n}\n\nexports.default = _public;\nmodule.exports = exports['default'];\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/scripts/services/type-plain-text/type-plain-text.js\n// module id = 4\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/scripts/services/type-plain-text/type-plain-text.js?");

/***/ }),
/* 5 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.TerminalLine = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(26);\n\nvar _dom = __webpack_require__(0);\n\nvar _dom2 = _interopRequireDefault(_dom);\n\nvar _terminalLine = __webpack_require__(27);\n\nvar _terminalLine2 = _interopRequireDefault(_terminalLine);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar TerminalLine = exports.TerminalLine = function () {\n  function TerminalLine() {\n    _classCallCheck(this, TerminalLine);\n\n    this.element = _dom2.default.parseHtml(_terminalLine2.default);\n  }\n\n  _createClass(TerminalLine, [{\n    key: 'setContent',\n    value: function setContent(html) {\n      this.element.append(html);\n    }\n  }]);\n\n  return TerminalLine;\n}();\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/scripts/components/terminal-line/terminal-line.js\n// module id = 5\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/scripts/components/terminal-line/terminal-line.js?");

/***/ }),
/* 6 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(7);\n\n__webpack_require__(8);\n\nvar _player = __webpack_require__(9);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _class = function () {\n  function _class(selector) {\n    _classCallCheck(this, _class);\n\n    this.container = document.querySelector(selector);\n    this.steps = [];\n  }\n\n  _createClass(_class, [{\n    key: 'openApp',\n    value: function openApp(app) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n      this.steps.push({\n        app: app,\n        options: options,\n        onCompleteDelay: options.onCompleteDelay\n      });\n      return this;\n    }\n  }, {\n    key: 'write',\n    value: function write(codeSample) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n      this.steps.push({\n        app: 'editor',\n        action: 'write',\n        params: { codeSample: codeSample },\n        onCompleteDelay: options.onCompleteDelay\n      });\n      return this;\n    }\n  }, {\n    key: 'command',\n    value: function command(_command) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n      this.steps.push({\n        app: 'terminal',\n        action: 'command',\n        params: {\n          command: _command,\n          promptString: options.promptString\n        },\n        onCompleteDelay: options.onCompleteDelay\n      });\n      return this;\n    }\n  }, {\n    key: 'respond',\n    value: function respond(response) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n      this.steps.push({\n        app: 'terminal',\n        action: 'respond',\n        params: { response: response },\n        onCompleteDelay: options.onCompleteDelay\n      });\n      return this;\n    }\n  }, {\n    key: 'end',\n    value: function end() {\n      var player = new _player.Player(this.container, this.steps);\n      player.play();\n    }\n  }]);\n\n  return _class;\n}();\n\nexports.default = _class;\nmodule.exports = exports['default'];\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/scripts/index.js\n// module id = 6\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/scripts/index.js?");

/***/ }),
/* 7 */
/***/ (function(module, exports) {

eval("// removed by extract-text-webpack-plugin\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/styles/_variables.styl\n// module id = 7\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/styles/_variables.styl?");

/***/ }),
/* 8 */
/***/ (function(module, exports) {

eval("// removed by extract-text-webpack-plugin\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/styles/_mixins.styl\n// module id = 8\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/styles/_mixins.styl?");

/***/ }),
/* 9 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Player = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _desktop = __webpack_require__(10);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Player = exports.Player = function () {\n  function Player(container, steps) {\n    _classCallCheck(this, Player);\n\n    this.container = container;\n    this.steps = steps;\n    this.desktop = new _desktop.Desktop(container);\n    this.setCurrentStep(0);\n  }\n\n  _createClass(Player, [{\n    key: 'play',\n    value: function play() {\n      var _this = this;\n\n      var currentStep = this.getCurrentStep();\n      if (currentStep < this.steps.length) {\n        var step = this.steps[currentStep];\n        playStep(this.desktop, step, function () {\n          _this.setCurrentStep(currentStep + 1);\n          _this.play();\n        }, step.onCompleteDelay);\n      }\n    }\n  }, {\n    key: 'getCurrentStep',\n    value: function getCurrentStep() {\n      return this.currentStep;\n    }\n  }, {\n    key: 'setCurrentStep',\n    value: function setCurrentStep(stepNumber) {\n      this.currentStep = stepNumber;\n    }\n  }]);\n\n  return Player;\n}();\n\nfunction playStep(desktop, step, onComplete) {\n  var onCompleteDelay = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n\n  getApplication(desktop, step.app, step.options, function (application) {\n    if (step.action) application[step.action](step.params, function () {\n      setTimeout(onComplete, onCompleteDelay);\n    });else setTimeout(onComplete, onCompleteDelay);\n  });\n}\n\nfunction getApplication(desktop, app, options, onGetApplication) {\n  var application = desktop.openApplication(app, options);\n  if (application.isMaximized) onGetApplication(application);else desktop.minimizeAllApplications(function () {\n    desktop.maximizeApplication(application, function () {\n      onGetApplication(application);\n    });\n  });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/scripts/components/player/player.js\n// module id = 9\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/scripts/components/player/player.js?");

/***/ }),
/* 10 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Desktop = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(11);\n\nvar _editorApplication = __webpack_require__(12);\n\nvar _terminalApplication = __webpack_require__(23);\n\nvar _dom = __webpack_require__(0);\n\nvar _dom2 = _interopRequireDefault(_dom);\n\nvar _desktop = __webpack_require__(32);\n\nvar _desktop2 = _interopRequireDefault(_desktop);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ANIMATION_DEFAULT_DURATION = 750;\n\nvar Desktop = exports.Desktop = function () {\n  function Desktop(container) {\n    _classCallCheck(this, Desktop);\n\n    this.element = _dom2.default.parseHtml(_desktop2.default);\n    this.container = container;\n    this.openApplications = [];\n    this.container.appendChild(this.element);\n  }\n\n  _createClass(Desktop, [{\n    key: 'openApplication',\n    value: function openApplication(applicationType, applicationOptions) {\n      var application = getOpenApplication(this.openApplications, applicationType);\n      if (!application) return buildApplication(this, applicationType, applicationOptions);\n      return application;\n    }\n  }, {\n    key: 'minimizeAllApplications',\n    value: function minimizeAllApplications(onComplete) {\n      for (var i = 0; i < this.openApplications.length; i++) {\n        this.openApplications[i].minimize();\n      }setTimeout(onComplete, ANIMATION_DEFAULT_DURATION);\n    }\n  }, {\n    key: 'maximizeApplication',\n    value: function maximizeApplication(application, onComplete) {\n      application.maximize();\n      setTimeout(onComplete, ANIMATION_DEFAULT_DURATION);\n    }\n  }]);\n\n  return Desktop;\n}();\n\nfunction buildApplication(desktop, applicationType, options) {\n  var Application = applicationType == 'editor' ? _editorApplication.EditorApplication : _terminalApplication.TerminalApplication;\n  var application = new Application(desktop.element, options);\n  desktop.openApplications.push(application);\n  desktop.element.appendChild(application.element);\n  return application;\n}\n\nfunction getOpenApplication(openApplications, applicationType) {\n  for (var i = 0; i < openApplications.length; i++) {\n    var application = openApplications[i];\n    if (application.type == applicationType) return application;\n  }\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/scripts/components/desktop/desktop.js\n// module id = 10\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/scripts/components/desktop/desktop.js?");

/***/ }),
/* 11 */
/***/ (function(module, exports) {

eval("// removed by extract-text-webpack-plugin\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/styles/desktop.styl\n// module id = 11\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/styles/desktop.styl?");

/***/ }),
/* 12 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.EditorApplication = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(13);\n\nvar _application = __webpack_require__(2);\n\nvar _editorLine = __webpack_require__(16);\n\nvar _text = __webpack_require__(1);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar EditorApplication = exports.EditorApplication = function (_Application) {\n  _inherits(EditorApplication, _Application);\n\n  function EditorApplication(container) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, EditorApplication);\n\n    var _this = _possibleConstructorReturn(this, (EditorApplication.__proto__ || Object.getPrototypeOf(EditorApplication)).call(this, 'editor', options));\n\n    _this.container = container;\n    _this.container.appendChild(_this.element);\n    _this.lines = [];\n    _this.setWindowTitle(buildWindowTitle(options));\n    return _this;\n  }\n\n  _createClass(EditorApplication, [{\n    key: 'write',\n    value: function write(_ref, onComplete) {\n      var codeSample = _ref.codeSample;\n\n      var textLines = _text2.default.removeBlankFirstLine(codeSample);\n      writeMultipleLines(this, textLines, onComplete);\n    }\n  }]);\n\n  return EditorApplication;\n}(_application.Application);\n\nfunction buildWindowTitle(options) {\n  return options.windowTitle || '~/demo/demo.js';\n}\n\nfunction writeMultipleLines(application, textLines, onComplete) {\n  var textLine = textLines.shift();\n  if (textLine !== undefined) {\n    inactivateLastLineWritten(application.lines);\n    writeSingleLine(application, textLine, function () {\n      writeMultipleLines(application, textLines, onComplete);\n    });\n  } else {\n    onComplete();\n  }\n}\n\nfunction inactivateLastLineWritten(lines) {\n  if (lines.length) lines[lines.length - 1].setInactive();\n}\n\nfunction writeSingleLine(application, textLine, onComplete) {\n  var line = new _editorLine.EditorLine(application.lines.length + 1);\n  application.addContent(line.element);\n  application.lines.push(line);\n  line.setActive();\n  line.write(textLine, onComplete);\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/scripts/components/editor-application/editor-application.js\n// module id = 12\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/scripts/components/editor-application/editor-application.js?");

/***/ }),
/* 13 */
/***/ (function(module, exports) {

eval("// removed by extract-text-webpack-plugin\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/styles/editor-application.styl\n// module id = 13\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/styles/editor-application.styl?");

/***/ }),
/* 14 */
/***/ (function(module, exports) {

eval("// removed by extract-text-webpack-plugin\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/styles/application.styl\n// module id = 14\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/styles/application.styl?");

/***/ }),
/* 15 */
/***/ (function(module, exports) {

eval("module.exports = \"<div class=\\\"application\\\" data-application>\\n  <div class=\\\"application-topbar\\\">\\n    <div class=\\\"application-actions-container\\\">\\n      <div class=\\\"application-action application-action-close\\\"></div>\\n      <div class=\\\"application-action application-action-minimize\\\"></div>\\n      <div class=\\\"application-action application-action-maximize\\\"></div>\\n    </div>\\n    <div class=\\\"application-title-container\\\" data-title-container></div>\\n  </div>\\n  <div class=\\\"application-content-container\\\" data-content-container></div>\\n</div>\\n\";\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/scripts/components/application/application.html\n// module id = 15\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/scripts/components/application/application.html?");

/***/ }),
/* 16 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.EditorLine = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(17);\n\nvar _cursor = __webpack_require__(3);\n\nvar _dom = __webpack_require__(0);\n\nvar _dom2 = _interopRequireDefault(_dom);\n\nvar _editorLine = __webpack_require__(22);\n\nvar _editorLine2 = _interopRequireDefault(_editorLine);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar EditorLine = exports.EditorLine = function () {\n  function EditorLine(lineNumber) {\n    _classCallCheck(this, EditorLine);\n\n    this.cursor = new _cursor.Cursor();\n    this.element = _dom2.default.parseHtml(_editorLine2.default);\n    getTextElement(this.element).appendChild(this.cursor.element);\n    setNumber(this.element, lineNumber);\n  }\n\n  _createClass(EditorLine, [{\n    key: 'write',\n    value: function write(text, onComplete) {\n      this.cursor.write(text, onComplete);\n    }\n  }, {\n    key: 'setActive',\n    value: function setActive() {\n      this.cursor.setActive();\n    }\n  }, {\n    key: 'setInactive',\n    value: function setInactive() {\n      this.cursor.setInactive();\n    }\n  }]);\n\n  return EditorLine;\n}();\n\nfunction setNumber(lineElement, number) {\n  getNumberElement(lineElement).innerText = number;\n}\n\nfunction getNumberElement(lineElement) {\n  return getInnerElement(lineElement, '[data-editor-line-number]');\n}\n\nfunction getTextElement(lineElement) {\n  return getInnerElement(lineElement, '[data-editor-line-text]');\n}\n\nfunction getInnerElement(lineElement, selector) {\n  return lineElement.querySelector(selector);\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/scripts/components/editor-line/editor-line.js\n// module id = 16\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/scripts/components/editor-line/editor-line.js?");

/***/ }),
/* 17 */
/***/ (function(module, exports) {

eval("// removed by extract-text-webpack-plugin\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/styles/editor-line.styl\n// module id = 17\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/styles/editor-line.styl?");

/***/ }),
/* 18 */
/***/ (function(module, exports) {

eval("// removed by extract-text-webpack-plugin\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/styles/cursor.styl\n// module id = 18\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/styles/cursor.styl?");

/***/ }),
/* 19 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _dom = __webpack_require__(0);\n\nvar _dom2 = _interopRequireDefault(_dom);\n\nvar _typePlainText = __webpack_require__(4);\n\nvar _typePlainText2 = _interopRequireDefault(_typePlainText);\n\nvar _typeHtmlText = __webpack_require__(20);\n\nvar _typeHtmlText2 = _interopRequireDefault(_typeHtmlText);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _public = {};\n\nvar TYPING_CSS_CLASS = 'is-typing';\n\n_public.type = function (container, text, onComplete) {\n  handleIsTypingCssClass(container, 'add', TYPING_CSS_CLASS);\n  getSpecificTypeService(text).type(container, text, function () {\n    handleIsTypingCssClass(container, 'remove', TYPING_CSS_CLASS);\n    onComplete();\n  });\n};\n\nfunction handleIsTypingCssClass(element, action, cssClass) {\n  element.classList[action](cssClass);\n}\n\nfunction getSpecificTypeService(text) {\n  if (_dom2.default.containsClosingHtmlTag(text)) return _typeHtmlText2.default;\n  return _typePlainText2.default;\n}\n\nexports.default = _public;\nmodule.exports = exports['default'];\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/scripts/services/type/type.js\n// module id = 19\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/scripts/services/type/type.js?");

/***/ }),
/* 20 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _dom = __webpack_require__(0);\n\nvar _dom2 = _interopRequireDefault(_dom);\n\nvar _typePlainText = __webpack_require__(4);\n\nvar _typePlainText2 = _interopRequireDefault(_typePlainText);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _public = {};\n\n_public.type = function (container, htmlString, onComplete) {\n  var nodes = buildHtmlNodes(htmlString);\n  typeHtmlNodes(container, nodes, onComplete);\n};\n\nfunction buildHtmlNodes(htmlString) {\n  var wrappedHtmlString = _dom2.default.wrapHtmlStringInHtmlTag(htmlString, 'span');\n  var html = _dom2.default.parseHtml(wrappedHtmlString);\n  return Array.from(html.childNodes);\n}\n\nfunction typeHtmlNodes(container, nodes, onComplete) {\n  if (!nodes.length) return onComplete();\n  typeSingleHtmlNode(container, nodes.shift(), function () {\n    typeHtmlNodes(container, nodes, onComplete);\n  });\n}\n\nfunction typeSingleHtmlNode(container, node, onComplete) {\n  if (_dom2.default.isHtmlNodeTypeText(node)) typePlainText(node.textContent, container, onComplete);else typePlainText(node.innerHTML, buildSubContainer(container, node), onComplete);\n}\n\nfunction buildSubContainer(container, node) {\n  var subContainer = _dom2.default.clearNodeContent(node);\n  container.appendChild(subContainer);\n  return subContainer;\n}\n\nfunction typePlainText(text, container, onComplete) {\n  _typePlainText2.default.type(container, text, onComplete);\n}\n\nexports.default = _public;\nmodule.exports = exports['default'];\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/scripts/services/type-html-text/type-html-text.js\n// module id = 20\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/scripts/services/type-html-text/type-html-text.js?");

/***/ }),
/* 21 */
/***/ (function(module, exports) {

eval("module.exports = \"<span class=\\\"cursor\\\"></span>\\n\";\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/scripts/components/cursor/cursor.html\n// module id = 21\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/scripts/components/cursor/cursor.html?");

/***/ }),
/* 22 */
/***/ (function(module, exports) {

eval("module.exports = \"<div class=\\\"editor-line\\\">\\n  <div class=\\\"editor-line-number\\\" data-editor-line-number></div>\\n  <pre class=\\\"editor-line-text\\\" data-editor-line-text></pre>\\n</div>\\n\";\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/scripts/components/editor-line/editor-line.html\n// module id = 22\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/scripts/components/editor-line/editor-line.html?");

/***/ }),
/* 23 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.TerminalApplication = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _text = __webpack_require__(1);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _application = __webpack_require__(2);\n\nvar _terminalCommandLine = __webpack_require__(24);\n\nvar _terminalResponseLine = __webpack_require__(29);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TerminalApplication = function (_Application) {\n  _inherits(TerminalApplication, _Application);\n\n  function TerminalApplication(container) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, TerminalApplication);\n\n    var _this = _possibleConstructorReturn(this, (TerminalApplication.__proto__ || Object.getPrototypeOf(TerminalApplication)).call(this, 'terminal', options));\n\n    _this.container = container;\n    _this.container.appendChild(_this.element);\n    _this.setCommandLines([]);\n    _this.configOptions(options);\n    return _this;\n  }\n\n  _createClass(TerminalApplication, [{\n    key: 'configOptions',\n    value: function configOptions(options) {\n      this.setWindowTitle(buildWindowTitle(options));\n      this.setPromptString(buildPromptString(options));\n    }\n  }, {\n    key: 'setCommandLines',\n    value: function setCommandLines(lines) {\n      this.commandLines = lines;\n    }\n  }, {\n    key: 'setPromptString',\n    value: function setPromptString(string) {\n      this.promptString = string;\n    }\n  }, {\n    key: 'command',\n    value: function command(_ref, onComplete) {\n      var _command = _ref.command,\n          promptString = _ref.promptString;\n\n      if (promptString) this.setPromptString(promptString);\n      setLastCommandLineWrittenAsInactive(this.commandLines);\n      writeCommandLine(this, _command, onComplete);\n    }\n  }, {\n    key: 'respond',\n    value: function respond(_ref2, onComplete) {\n      var response = _ref2.response;\n\n      var responseLines = _text2.default.removeBlankFirstLine(response);\n      for (var i = 0; i < responseLines.length; i++) {\n        this.addContent(buildResponseLineElement(responseLines[i]));\n      }onComplete();\n    }\n  }]);\n\n  return TerminalApplication;\n}(_application.Application);\n\nexports.TerminalApplication = TerminalApplication;\n\n\nfunction buildWindowTitle(options) {\n  return options.windowTitle || 'bash';\n}\n\nfunction buildPromptString(options) {\n  return options.promptString || '~/demo $';\n}\n\nfunction setLastCommandLineWrittenAsInactive(commandLines) {\n  if (commandLines.length) commandLines[commandLines.length - 1].setInactive();\n}\n\nfunction writeCommandLine(terminalApplication, command, onComplete) {\n  var line = new _terminalCommandLine.TerminalCommandLine(terminalApplication.promptString);\n  terminalApplication.commandLines.push(line);\n  terminalApplication.addContent(line.element);\n  line.setActive();\n  line.command(command, onComplete);\n}\n\nfunction buildResponseLineElement(lineText) {\n  var line = new _terminalResponseLine.TerminalResponseLine();\n  line.setText(lineText);\n  return line.element;\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/scripts/components/terminal-application/terminal-application.js\n// module id = 23\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/scripts/components/terminal-application/terminal-application.js?");

/***/ }),
/* 24 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.TerminalCommandLine = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(25);\n\nvar _cursor = __webpack_require__(3);\n\nvar _terminalLine = __webpack_require__(5);\n\nvar _dom = __webpack_require__(0);\n\nvar _dom2 = _interopRequireDefault(_dom);\n\nvar _terminalCommandLine = __webpack_require__(28);\n\nvar _terminalCommandLine2 = _interopRequireDefault(_terminalCommandLine);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TerminalCommandLine = exports.TerminalCommandLine = function (_TerminalLine) {\n  _inherits(TerminalCommandLine, _TerminalLine);\n\n  function TerminalCommandLine(promptString) {\n    _classCallCheck(this, TerminalCommandLine);\n\n    var _this = _possibleConstructorReturn(this, (TerminalCommandLine.__proto__ || Object.getPrototypeOf(TerminalCommandLine)).call(this));\n\n    _this.cursor = new _cursor.Cursor();\n    _this.setContent(_dom2.default.parseHtml(_terminalCommandLine2.default));\n    _this.setPromptString(promptString);\n    getTextElement(_this.element).appendChild(_this.cursor.element);\n    return _this;\n  }\n\n  _createClass(TerminalCommandLine, [{\n    key: 'setPromptString',\n    value: function setPromptString(promptString) {\n      var container = this.element.querySelector('[data-terminal-command-line-prompt-string]');\n      container.appendChild(_dom2.default.parseHtml(promptString));\n    }\n  }, {\n    key: 'command',\n    value: function command(text, onComplete) {\n      this.cursor.write(text, onComplete);\n    }\n  }, {\n    key: 'setActive',\n    value: function setActive() {\n      this.cursor.setActive();\n    }\n  }, {\n    key: 'setInactive',\n    value: function setInactive() {\n      this.cursor.setInactive();\n    }\n  }]);\n\n  return TerminalCommandLine;\n}(_terminalLine.TerminalLine);\n\nfunction getTextElement(lineElement) {\n  return lineElement.querySelector('[data-terminal-command-line-text]');\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/scripts/components/terminal-command-line/terminal-command-line.js\n// module id = 24\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/scripts/components/terminal-command-line/terminal-command-line.js?");

/***/ }),
/* 25 */
/***/ (function(module, exports) {

eval("// removed by extract-text-webpack-plugin\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/styles/terminal-command-line.styl\n// module id = 25\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/styles/terminal-command-line.styl?");

/***/ }),
/* 26 */
/***/ (function(module, exports) {

eval("// removed by extract-text-webpack-plugin\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/styles/terminal-line.styl\n// module id = 26\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/styles/terminal-line.styl?");

/***/ }),
/* 27 */
/***/ (function(module, exports) {

eval("module.exports = \"<div class=\\\"terminal-line\\\"></div>\\n\";\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/scripts/components/terminal-line/terminal-line.html\n// module id = 27\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/scripts/components/terminal-line/terminal-line.html?");

/***/ }),
/* 28 */
/***/ (function(module, exports) {

eval("module.exports = \"<div>\\n  <div\\n    class=\\\"terminal-command-line-prompt-string\\\"\\n    data-terminal-command-line-prompt-string>\\n  </div>\\n  <div\\n    class=\\\"terminal-command-line-text\\\"\\n    data-terminal-command-line-text>\\n  </div>\\n</div>\\n\";\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/scripts/components/terminal-command-line/terminal-command-line.html\n// module id = 28\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/scripts/components/terminal-command-line/terminal-command-line.html?");

/***/ }),
/* 29 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.TerminalResponseLine = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(30);\n\nvar _terminalLine = __webpack_require__(5);\n\nvar _dom = __webpack_require__(0);\n\nvar _dom2 = _interopRequireDefault(_dom);\n\nvar _terminalResponseLine = __webpack_require__(31);\n\nvar _terminalResponseLine2 = _interopRequireDefault(_terminalResponseLine);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TerminalResponseLine = exports.TerminalResponseLine = function (_TerminalLine) {\n  _inherits(TerminalResponseLine, _TerminalLine);\n\n  function TerminalResponseLine() {\n    _classCallCheck(this, TerminalResponseLine);\n\n    var _this = _possibleConstructorReturn(this, (TerminalResponseLine.__proto__ || Object.getPrototypeOf(TerminalResponseLine)).call(this));\n\n    _this.setContent(_dom2.default.parseHtml(_terminalResponseLine2.default));\n    return _this;\n  }\n\n  _createClass(TerminalResponseLine, [{\n    key: 'setText',\n    value: function setText(text) {\n      var textContainer = this.element.querySelector('[data-terminal-response-line-text]');\n      return _dom2.default.containsClosingHtmlTag(text) ? appendHtml(textContainer, _dom2.default.parseHtml(text)) : appendText(textContainer, text);\n    }\n  }]);\n\n  return TerminalResponseLine;\n}(_terminalLine.TerminalLine);\n\nfunction appendHtml(container, html) {\n  container.appendChild(html);\n}\n\nfunction appendText(container, text) {\n  container.innerText = text;\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/scripts/components/terminal-response-line/terminal-response-line.js\n// module id = 29\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/scripts/components/terminal-response-line/terminal-response-line.js?");

/***/ }),
/* 30 */
/***/ (function(module, exports) {

eval("// removed by extract-text-webpack-plugin\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/styles/terminal-response-line.styl\n// module id = 30\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/styles/terminal-response-line.styl?");

/***/ }),
/* 31 */
/***/ (function(module, exports) {

eval("module.exports = \"<div class=\\\"terminal-response-line-text\\\" data-terminal-response-line-text></div>\\n\";\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/scripts/components/terminal-response-line/terminal-response-line.html\n// module id = 31\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/scripts/components/terminal-response-line/terminal-response-line.html?");

/***/ }),
/* 32 */
/***/ (function(module, exports) {

eval("module.exports = \"<div class=\\\"desktop\\\"></div>\\n\";\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/scripts/components/desktop/desktop.html\n// module id = 32\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/scripts/components/desktop/desktop.html?");

/***/ })
/******/ ]);
});
